package com.lingxu.module.homeIndex.service;

import com.lingxu.base.common.api.vo.Result;
import com.lingxu.module.homeIndex.entity.ParamsDTO;

import javax.servlet.http.HttpServletResponse;

/**
 * @Title: HomeIndexService
 * @Package: com.lingxu.module.homeIndex.service
 * @Author: ysj闫世杰
 * @Email: 1105324813@qq.com
 * @Date: Created in 2023/6/27 11:27
 * @Description: 首页统计
 * @Version: 1.0.0
 */
public interface HomeIndexService {

    /**
     * @Author ysj闫世杰
     * @Description 查询在线人数
     * @Date 2023/6/27 11:45
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findOnlineCount();

    /**
     * @Author ysj闫世杰
     * @Description 登录次数
     * @Date 2023/6/27 16:28
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findLoginCount();

    /**
     * @Author ysj闫世杰
     * @Description 模型类型分布
     * @Date 2023/6/27 16:40
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findModelTypeCount(ParamsDTO dto);

    /**
     * @Author ysj闫世杰
     * @Description 查询系统使用情况
     * @Date 2023/6/27 17:48
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findUserAndUseCount();

    /**
     * @Author ysj闫世杰
     * @Description 查询模型排行·
     * @Date 2023/6/27 18:10
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result rankByBrowseTimes();

    /**
     * @Author ysj闫世杰
     * @Description 内存
     * @Date 2023/6/28 9:56
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findMemory();

    /**
     * @Author ysj闫世杰
     * @Description CPU
     * @Date 2023/6/28 9:56
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findCPU();

    /**
     * @Author ysj闫世杰
     * @Description 磁盘
     * @Date 2023/6/28 9:56
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findDisk();

    /**
     * @Author ysj闫世杰
     * @Description 按使用量查询模型使用排行
     * @Date 2023/7/27 11:20
     * @Param: dto
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findModelUseLimit(ParamsDTO dto);

    /**
     * @Author ysj闫世杰
     * @Description 按照问题量查询模型使用情况
     * @Date 2023/7/27 14:32
     * @Param: dto
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findModelProblemLimit(ParamsDTO dto);

    /**
     * @Author ysj闫世杰
     * @Description 统计数据量
     * @Date 2023/7/27 16:53
     * @Param: dto
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findNumberData(ParamsDTO dto);

    /**
     * @Author ysj闫世杰
     * @Description 部门分布
     * @Date 2023/7/28 9:05
     * @Param: dto
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findDeptCount(ParamsDTO dto);

    /**
     * @Author ysj闫世杰
     * @Description 问题量统计
     * @Date 2023/7/28 9:17
     * @Param: dto
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findModelProblemCount(ParamsDTO dto);


    Result findLoginCountByArea(ParamsDTO dto);

    //部门登录情况
    Result findLoginByUserDept(ParamsDTO dto);

    //地图数据量
    Result findDataCountMaps(ParamsDTO dto);

    void findModelDataExcel(HttpServletResponse response);

    Result findModelCloneLimit(ParamsDTO dto);

    Result findAreaModelRun(ParamsDTO dto);

    Result findResultFeedBack(ParamsDTO dto);

    Result findModel(ParamsDTO dto);
}
